午睡后,头昏昏沉沉的,瞎点按钮差点把工友手指绞断了 😥
“机器弄坏了,人没事就好”,工友们如此安慰我 😭
对不起,对不起,对不起,对不起
“Success is going from failure to failure without loss of enthusiasm.”
午睡后,头昏昏沉沉的,瞎点按钮差点把工友手指绞断了 😥
“机器弄坏了,人没事就好”,工友们如此安慰我 😭
对不起,对不起,对不起,对不起
我好像有个幻觉,有了 mac mini,我就能更具有创造力似的。
struct 是值类型。
工厂干活很辛苦……这次出差来的是胶州一个轻工业小镇的木材厂,11 笑说公费旅游,才怪!公费吃苦呀。
木材厂的工人将一根根原木材(主要品种是白橡、白蜡、红橡)从仓库拖出来,修掉边边切割需要的尺寸,拼在一起后,再用轰鸣声巨大的刨砂机打磨表面,就是家具制造商需要的木板了。人类挑选家具时不喜欢难看的巴结、异色,喜欢“原木”好看的样子,所以还需要人对木材进行分 A、B、C……级。很难一根原木出来完全是想要的,实在无法忍受的横着切掉,可以接受的竖着切掉再拼在一起。而我来这里是调试一台视觉设备,希望达到代替肉眼分级的效果,识别出一根木材上不想要的东西,保证良才率(又长又好的木材最值钱)的基础上,将切割数据丢给下游的横切锯。
识别效果并不理想。老板写的代码还有不少漏洞,我大概要在这里待上一阵子。调试基本就是站一天,这么辛苦,挣的钱也低于烟台尊重技术工程人员的薪资,真的是太惨了。好处是,遇到的折磨人的困境,也许我能写点什么 :P
北方的小工厂几乎看不到年轻人,都是被迫很能吃苦的大叔大婶,女性似乎都比较乐观,爱说爱笑,可惜木材厂真的太吵了,否则依我爱八卦的性格,应该挺聊得来。
和 11 说,我想躺着就能赚钱,她说太色情了哈哈哈哈哈。
讀了這篇 Async 在 forEach、map 等各种迭代中的使用,修剪了其中的示例程序,更好理解些 for await 在干啥。
// 模拟一个耗时运算,输入 i,阻塞 i * 500 毫秒,再返回 i
function get(i) {
return new Promise(resolve => {
setTimeout(() => {
console.log("get(%d) over", i);
resolve(i);
}, i * 500);
})
}
// 测试 for await
async function printNums() {
const nums = [3, 1, 10, 2].map(n => get(n));
console.log("begin");
for await (const n of nums) {
console.log("content: %d", n);
}
}
printNums();
// will console:
begin
get(1) over
get(2) over
get(3) over
content: 3
content: 1
get(10) over
content: 10
content: 2
这样就比较清楚看出来 for await 的好处了,既异步进行了运算(耗时少的提前结束运算),又按着顺序拿到了运算的结果。从打印的日志可以看出,get(2) 提前结束了运算,仍然会等待 get(10) 计算结束之后才立即拿到结果。